package com.apanal.qlife.sys.service;

import java.util.List;

import com.apanal.qlife.common.page.Page;
import com.apanal.qlife.common.page.PageReturn;
import com.apanal.qlife.sys.model.Group;

/**
 * 群组服务层接口
 * 
 * @author shuliangxing
 * 
 * @date 2015-1-14上午11:33:49
 */
public interface GroupService {

	/**
	 * 根据id删除
	 * 
	 * @param id
	 * @return
	 */
	String deleteById(Long id);

	/**
	 * 新增
	 * 
	 * @param record
	 * @return
	 */
	String insert(Group record);

	/**
	 * 非空字段新增
	 * 
	 * @param record
	 * @return
	 */
	String insertSelective(Group record);

	/**
	 * 根据id查询
	 * 
	 * @param id
	 * @return
	 */
	Group selectById(Long id);

	/**
	 * 非空字段更新
	 * 
	 * @param record
	 * @return
	 */
	String updateByIdSelective(Group record);

	/**
	 * 更新
	 * 
	 * @param record
	 * @return
	 */
	String updateById(Group record);

	// 分割线

	/**
	 * 查询所有
	 * 
	 * @return
	 */
	List<Group> selectAll();

	/**
	 * 根据id查询相关信息
	 * 
	 * @param id
	 * @return
	 */
	Group selectRelationById(Long id);

	/**
	 * 分页查询相关信息
	 * 
	 * @param entity
	 * @param page
	 * @return
	 */
	PageReturn<Group> selectRelationForPage(Group entity, Page page);

	/**
	 * 软删除
	 * 
	 * @param id
	 *            id
	 * @param useId
	 *            操作人id
	 * @return
	 */
	String deleteSoft(Long id, Long useId);

	/**
	 * 启用/停用
	 * 
	 * @param group
	 * @return
	 */
	String updateToEnableOrDisable(Group group);

	/**
	 * 检查群组名是否存在,修改时排除当前群组名称
	 * 
	 * @param groId
	 *            群组id,新增时传0
	 * @param groName
	 *            群组名称
	 * @return true:存在 false:不存在
	 */
	Boolean checkGroupNameExist(Long groId, String groName);

	/**
	 * 根据用户id查询群组集合
	 * 
	 * @param useId
	 * @return
	 */
	List<Group> selectByUseId(Long useId);

	/**
	 * 根据id字符串查询
	 * 
	 * @param ids
	 *            逗号分隔
	 * @return
	 */
	List<Group> selectByIds(String ids);
}
